package com.uzai.console.service.remoteapi;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.common.dto.wxgroup.WxGroupAddBlacklistDto;
import com.uzai.console.dto.pyq.pyqjobdetail.PyqJobDetailIdDto;
import com.uzai.console.dto.remoteapi.*;
import com.uzai.console.dto.wechatprivate.friendrequest.FriendRequestIdListDto;
import com.uzai.console.vo.pyq.pyqfollowedcontent.PyqFollowedItemVo;
import com.uzai.console.vo.pyq.pyqjobdetail.PyqJobDetailVo;
import com.uzai.console.vo.remoteapi.cashier.CashierAuthpayContentVo;
import com.uzai.console.vo.remoteapi.reportbanel.ReportBanelFansValueReportVo;
import com.uzai.console.vo.wechatprivate.friendrequest.FriendRequestInfoVo;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * 机器人远程调用
 * @Auther: liuqi
 * @Date: 2021/08/27 11:23
 * @Description:
 */
public interface RemoteApiService {
    /**
     * 发送淘宝订单下载限流报警消息
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param sendAlarmMsgTbOrderDownloadLimitDto
     * @return null
     */
    void sendAlarmMsgTbOrderDownloadLimit(SendAlarmMsgTbOrderDownloadLimitDto sendAlarmMsgTbOrderDownloadLimitDto);

    /**
     * 远程调用发送个人微信会员消息
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param wechantUserSendMsgDto
     * @return null
     */
    void wechatUserSendMsg(WechantUserSendMsgDto wechantUserSendMsgDto);

    /**
     * 远程调用修改个人微信会员备注和标签
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param wechantUserUpdateInfoDto
     * @return null
     */
    void wechatUserUpdateInfo(WechantUserUpdateInfoDto wechantUserUpdateInfoDto);


    /**
     * 远程调用修改个人微信会员客户端
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param wechantUserUpdateDeviceDto
     * @return null
     */
    void wechatUserUpdateDevice(WechantUserUpdateDeviceDto wechantUserUpdateDeviceDto);

    /**
     * 账房查询支付链接接口
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param cashierAuthpayContentDto
     * @return null
     */
    CashierAuthpayContentVo getCashierAuthpayContent(CashierAuthpayContentDto cashierAuthpayContentDto);

    /**
     * 报表面板粉丝价值报表
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param reportPanelFansValueReportQuery
     * @return null
     */
    Page<ReportBanelFansValueReportVo> reportbanelFansValueReprot(ReportPanelFansValueReportQuery reportPanelFansValueReportQuery);

    /**
     * 朋友圈查询今日合集接口
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param pyqTodySendListDto
     * @return null
     */
    List<PyqJobDetailVo> pyqTodaySendList(PyqTodySendListDto pyqTodySendListDto);

    /**
     * 朋友圈查询明细
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param remoteApiPyqDetailIdDto
     * @return null
     */
    PyqJobDetailVo findPyqDetail(RemoteApiPyqDetailIdDto remoteApiPyqDetailIdDto);

    /**
     * 更新微信群ES缓存中的群配置方案id
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param
     * @return null
     */
    void updateManagePlanIdToEs();

    /**
     * 根据商品id清除自动发送朋友圈历史记录
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param
     * @return null
     */
    void deletePyqAutoSendByGoodsid(PyqAutoSendDeleteDto pyqAutoSendDeleteDto);

    Object dataPanelInfo(DataPanelRemoteQuery query);

    /**
     * 更新淘宝联盟的mm_user_id
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param
     * @return null
     */
    void updateTbTokenMMUserId();

    /**
     * 更新清理僵尸粉任务状态
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param
     * @return null
     */
    void updateZombieFanTaskStatus(@RequestBody ZombieFanTaskUpdateStatusDto zombieFanTaskUpdateStatusDto);

    /**
     * 社群成员加入黑名单
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param
     * @return null
     */
    void addBlacklistByWxGroup(WxGroupAddBlacklistDto wxGroupAddBlacklistDto);

    /**
     * 会员黑名单共享至全网
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param
     * @return null
     */
    void userBlacklistSharePub(UserBlackListSharePubDto userBlackListSharePubDto);

    /**
     * 会员黑名单取消至全网
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param
     * @return null
     */
    void userBlacklistCancelPub(UserBlackListCancelPubDto userBlackListCancelPubDto);

    /**
     * 会员黑名单移除私有黑名单
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param
     * @return null
     */
    void userBlacklistDeletePrv(UserBlackListDeletePrvDto userBlackListDeletePrvDto);

    /**
     * 悠聊分页查询好友请求数据
     * @author liuqi
     * @date 2022/11/23 11:38
     * @param friendRequestByUchatRemoteQuery
     * @return null
     */
    Page<FriendRequestInfoVo> friendRequestByPage(FriendRequestByUchatRemoteQuery friendRequestByUchatRemoteQuery);

    /**
     * 添加好友请求
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param friendRequestIdListDto
     * @return null
     */
    void addFriendRequest(FriendRequestIdListDto friendRequestIdListDto);

    /**
     * 忽略好友请求
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param friendRequestIdListDto
     * @return null
     */
    void passFriendRequest(FriendRequestIdListDto friendRequestIdListDto);

    /**
     * 设置机器人手机号
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param deviceMobileSetDto
     * @return null
     */
    void deviceMobileSet(DeviceMobileSetDto deviceMobileSetDto);

    /**
     * 修改机器人话费余额
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param devicePhonebalUpdateDto
     * @return null
     */
    void devicePhonebalUpdate(DevicePhonebalUpdateDto devicePhonebalUpdateDto);

    /**
     * 修改机器人话费余额
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pyqFollowedItemQuery
     * @return null
     */
    List<PyqFollowedItemVo> pyqFollowedItemFindByList(PyqFollowedItemQuery pyqFollowedItemQuery);

    /**
     * 删除发单历史记录
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param
     * @return null
     */
    void deleteHistoryFdSendJob();

    /**
     * 通过被动僵尸粉添加好友
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param
     * @return null
     */
    void passZombieFanPassive(PassZombieFanPassiveDto passZombieFanPassiveDto);

}
